from myelin.Ns import MYELIN, MYELINS
from myelin.server.nodetype.Action import Service


class UserService(Service):
    label = u'UserService'
    classTypes = (MYELIN + u'UserService',)
    
    
class MemberService(UserService):
    label = u'MemberService'
    classTypes = (MYELIN + u'MemberService',)
    
    
class QueryService(Service):
    label = u'QueryService'
    classTypes = (MYELIN + u'QueryService',)
    

class EditService(Service):
    label = u'EditService'
    classTypes = (MYELIN + u'EditService',)
    
    
class PutService(Service):
    label = u'PutService'
    classTypes = (MYELIN + u'PutService',)
    
class AddNewResourceService(PutService):
    label = u'AddNewResourceService'
    classTypes = (MYELIN + u'NewResourceService',)


# Document Services
class ViewService(Service):    
    label = u'ViewService'
    classTypes = (MYELIN + u'ViewService',)

class ShowGroupingsService(ViewService):    
    label = u'ShowGroupingsService'
    classTypes = (MYELIN + u'ShowGroupingsService',)
    
class ShowTranslationsService(ViewService):    
    label = u'ShowTranslationsService'
    classTypes = (MYELIN + u'ShowTranslationsService',)
    
    
# User Services
class MemberLoginService(MemberService):
    label = u'MemberLoginService'
    classTypes = (MYELIN + u'MemberLoginService',)
    

class UserEditPreferencesService(UserService):
    label = u'UserEditPreferencesService'
    classTypes = (MYELIN + u'UserEditPreferencesService',)


class MemberEditPreferencesService(UserService):
    label = u'MemberEditPreferencesService'
    classTypes = (MYELIN + u'MemberEditPreferencesService',)
    
    
# File Services
class FileDownloadService(Service):
    label = u'FileDownloadService'
    classTypes = (MYELIN + u'FileDownloadService',)
    

# Query Services
class MetaSearchQueryService(QueryService):
    label = u'MetaSearchService'
    classTypes = (MYELIN + u'MetaSearchQueryService',)
    
class SparqlQueryService(QueryService):
    label = u'SparqlSearchService'
    classTypes = (MYELIN + u'SparqlQueryService',)
    
class VersaQueryService(QueryService):
    label = u'VersaQueryService'
    classTypes = (MYELIN + u'VersaQueryService',)